package cn.bisoft.java.bean.entity;

import java.io.Serializable;



/**
 * This is an object that contains data related to the AnteFrontDrawFeeConfig table.
 * Do not modify this class because it will be overwritten if the configuration file
 * related to this class is modified.
 *
 * @hibernate.class
 *  table="AnteFrontDrawFeeConfig"
 */

public abstract class BaseAnteFrontDrawFeeConfig  implements Serializable {
	private static final long serialVersionUID = 1L;
	public static String REF = "AnteFrontDrawFeeConfig";
	public static String PROP_FEE_ID = "FeeId";
	public static String PROP_FEE_TYPE = "FeeType";
	public static String PROP_MIN_FEE = "MinFee";
	public static String PROP_MAX_FEE = "MaxFee";
	public static String PROP_MAX_MONEY = "MaxMoney";
	public static String PROP_MIN_MONEY = "MinMoney";
	public static String PROP_PROVIDER_ID = "ProviderId";
	public static String PROP_FEE = "Fee";


	// constructors
	public BaseAnteFrontDrawFeeConfig () {
		initialize();
	}

	/**
	 * Constructor for primary key
	 */
	public BaseAnteFrontDrawFeeConfig (java.lang.Integer feeId) {
		this.setFeeId(feeId);
		initialize();
	}

	/**
	 * Constructor for required fields
	 */
	public BaseAnteFrontDrawFeeConfig (
		java.lang.Integer feeId,
		java.lang.String providerId,
		java.lang.Integer feeType,
		java.lang.Integer fee,
		java.lang.Integer maxFee,
		java.lang.Integer minFee) {

		this.setFeeId(feeId);
		this.setProviderId(providerId);
		this.setFeeType(feeType);
		this.setFee(fee);
		this.setMaxFee(maxFee);
		this.setMinFee(minFee);
		initialize();
	}

	protected void initialize () {}



	private int hashCode = Integer.MIN_VALUE;

	// primary key
	private java.lang.Integer feeId;

	// fields
	private java.lang.String providerId;
	private java.lang.Long minMoney;
	private java.lang.Long maxMoney;
	private java.lang.Integer feeType;
	private java.lang.Integer fee;
	private java.lang.Integer maxFee;
	private java.lang.Integer minFee;



	/**
	 * Return the unique identifier of this class
     * @hibernate.id
     *  generator-class="native"
     *  column="FeeId"
     */
	public java.lang.Integer getFeeId () {
		return feeId;
	}

	/**
	 * Set the unique identifier of this class
	 * @param feeId the new ID
	 */
	public void setFeeId (java.lang.Integer feeId) {
		this.feeId = feeId;
		this.hashCode = Integer.MIN_VALUE;
	}




	/**
	 * Return the value associated with the column: ProviderId
	 */
	public java.lang.String getProviderId () {
		return providerId;
	}

	/**
	 * Set the value related to the column: ProviderId
	 * @param providerId the ProviderId value
	 */
	public void setProviderId (java.lang.String providerId) {
		this.providerId = providerId;
	}



	/**
	 * Return the value associated with the column: MinMoney
	 */
	public java.lang.Long getMinMoney () {
		return minMoney;
	}

	/**
	 * Set the value related to the column: MinMoney
	 * @param minMoney the MinMoney value
	 */
	public void setMinMoney (java.lang.Long minMoney) {
		this.minMoney = minMoney;
	}



	/**
	 * Return the value associated with the column: MaxMoney
	 */
	public java.lang.Long getMaxMoney () {
		return maxMoney;
	}

	/**
	 * Set the value related to the column: MaxMoney
	 * @param maxMoney the MaxMoney value
	 */
	public void setMaxMoney (java.lang.Long maxMoney) {
		this.maxMoney = maxMoney;
	}



	/**
	 * Return the value associated with the column: FeeType
	 */
	public java.lang.Integer getFeeType () {
		return feeType;
	}

	/**
	 * Set the value related to the column: FeeType
	 * @param feeType the FeeType value
	 */
	public void setFeeType (java.lang.Integer feeType) {
		this.feeType = feeType;
	}



	/**
	 * Return the value associated with the column: Fee
	 */
	public java.lang.Integer getFee () {
		return fee;
	}

	/**
	 * Set the value related to the column: Fee
	 * @param fee the Fee value
	 */
	public void setFee (java.lang.Integer fee) {
		this.fee = fee;
	}



	/**
	 * Return the value associated with the column: MaxFee
	 */
	public java.lang.Integer getMaxFee () {
		return maxFee;
	}

	/**
	 * Set the value related to the column: MaxFee
	 * @param maxFee the MaxFee value
	 */
	public void setMaxFee (java.lang.Integer maxFee) {
		this.maxFee = maxFee;
	}



	/**
	 * Return the value associated with the column: MinFee
	 */
	public java.lang.Integer getMinFee () {
		return minFee;
	}

	/**
	 * Set the value related to the column: MinFee
	 * @param minFee the MinFee value
	 */
	public void setMinFee (java.lang.Integer minFee) {
		this.minFee = minFee;
	}




	public boolean equals (Object obj) {
		if (null == obj) return false;
		if (!(obj instanceof AnteFrontDrawFeeConfig)) return false;
		else {
			AnteFrontDrawFeeConfig anteFrontDrawFeeConfig = (AnteFrontDrawFeeConfig) obj;
			if (null == this.getFeeId() || null == anteFrontDrawFeeConfig.getFeeId()) return false;
			else return (this.getFeeId().equals(anteFrontDrawFeeConfig.getFeeId()));
		}
	}

	public int hashCode () {
		if (Integer.MIN_VALUE == this.hashCode) {
			if (null == this.getFeeId()) return super.hashCode();
			else {
				String hashStr = this.getClass().getName() + ":" + this.getFeeId().hashCode();
				this.hashCode = hashStr.hashCode();
			}
		}
		return this.hashCode;
	}


	public String toString () {
		return super.toString();
	}


}